15.3. Jersey Server-Sent Events API

    Jersey 都包含支持 服务器和客户端的 SSE。SSE 在 Jersey 被实现为一个扩展支持一个新的媒体类型,这意味着 SSE 真的仅视为另一种媒体类型,可以从资源方法返回并客户端处理。只有最小的额外支持“分块”消息添加到Jersey ,因此不能作为标准 JAX-RS 实现媒体类型的扩展。

    Example 15.1. Add jersey-media-sse dependency.

    Jersey 2.8 之前,您必须手动注册 SseFeature 在您的应用程序。(SseFeature 功能,既可以注册在客户端和服务器)。Jersey 2.8 以来,这个功能会自动发现和注册,当 Jersey SSE 模块放在应用程序的类路径中。禁用 SSE 的自动发现和注册功能可以通过 属性设置为 true 实现。该行为也可以选择性地通过在客户机或服务器运行时通过设置 DISABLE_SSE_CLIENT 或 属性来分别实现禁用。

    Jersey 服务器 SSE API 还包含一个 SseBroadcaster 功能,这提供了一个方便的方法,可以对多个 EventOutput 实例进行分组,并公开广播新事件的方法,对所有的客户端连接进行分组广播。SseBroadcaster 继承自Broadcaster ,这是通用的广播分块消息处理功能的实现。在客户端,Jersey SSE API包含额外的 EventSource 和 EventListener 类,进一步提高方便处理新的入站 SSE事件。